// 注册全局指令
// Vue.use() 去main.js注册
import Vue from 'vue'
export default {
  install () {
    // 进入自动聚焦
    Vue.directive('juJiao', {
      inserted (el) { // el 真实DOM标签 el为一个div,input在div里面,需要逐级查找
        let isFind = false // 标记-没找到-提示用户你的指令可能用错地方了
        // 获取标签的名字: div.nodeName的值就是"DIV"
        // 指令想通用: 必须判断
        // 判断el的值
        if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
          // el本身就是input/textarea直接调用focus聚焦
          el.focus()
          isFind = true
        } else {
          // el本身不是, 尝试往里获取
          const inp = el.querySelector('input')
          const ta = el.querySelector('textarea')
          // inp不是null才能往后执行
          // inp要是null后面不会执行
          if (inp && inp.nodeName === 'INPUT') {
            inp.focus()
            isFind = true
          }
          if (ta && ta.nodeName === 'TEXTAREA') {
            ta.focus()
            isFind = true
          }
        }

        // 兜底判断
        if (isFind === false) {
          // 证明这个指令可能绑定在了非textarea 和 input身上
          throw new Error('不要玩弄老子, 你把fofo给我绑定在输入框上可好?')
        }
      }
    })
  }
}
